Deduplication storage systems are generally used to reduce the amount of storage space required to store files by identifying redundant data patterns within similar files. For example, a deduplication storage system may divide multiple files into file segments and then identify at least one file segment obtained from one file that is identical to at least one file segment obtained from another file. Rather than storing multiple instances of a particular file segment, the deduplication storage system may store a single instance of the file segment and allow multiple files to simply reference that instance of the file segment to reduce the amount of storage space required to store the files. As such, deduplication storage systems typically only store file segments that are unique (i.e., non-redundant).
In order to prevent stored file segments from being prematurely or erroneously removed, a deduplication storage system may maintain multiple reference objects (such as reference lists and/or reference counts) that each indicate whether one or more backed-up files currently reference a particular file segment. If a reference object indicates that no files are currently referencing a particular file segment, the deduplication storage system may remove that file segment and reclaim the storage space occupied by the same.
Traditional deduplication systems typically store such reference objects in a reference database. Unfortunately, if the reference database becomes corrupted, the traditional deduplication system may suffer data losses and/or storage leaks. Moreover, taking the traditional deduplication system offline to repair the reference database may fail to meet service level requirements. As such, the instant disclosure identifies a need for additional and improved systems and methods for managing deduplication reference data.